// 引入模块
const Joi = require('joi');
const { User } = require('../../model/user');
module.exports = async(req, res, next) => {
    const schema = {
        username: Joi.string().min(2).max(10).required().error(new Error('用户名验证错误')),
        email: Joi.string().email().required().error(new Error('邮箱验证错误')),
        password: Joi.string().required().error(new Error('密码验证错误')),
        role: Joi.string().required().valid('normal', 'admin').error(new Error('角色错误')),
        statue: Joi.number().required().valid(0, 1).error(new Error('状态错误'))
    };
    try {
        await Joi.validate(req.body, schema);
    } catch (e) {
        // return res.redirect(`/admin/user-edit?message=${e.message}`);
        return next(JSON.stringify({ path: '/admin/user-edit', message: e.message }));
    }
    // 判断用户是否存在
    let user = await User.findOne({ email: req.body.email });
    if (user) {
        // res.send(user);
        // return res.redirect(`/admin/user-edit?message=邮箱已存在`);
        return next(JSON.stringify({ path: '/admin/user-edit', message: '邮箱地址已经被占用' }));
    }
    // res.send(req.body);
    // 对密码进行加密
    // const salt = await bcrypt.genSalt(10);
    // const password = await bcrypt.hash(req.body.password);
    // req.body.password = password;

    await User.create(req.body);
    // 重定向到用户列表
    res.redirect('/admin/user');
};